{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. 将数据导入pandas中，加上列名"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导入数据\n",
    "df = pd.read_csv('./log.txt',header=None,sep = '\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           created_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 设置列名\n",
    "df.columns = ['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','created_at']\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. 检测是否有重复值\n",
    "# 3. 检测是否有异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>90607</th>\n",
       "      <td>6859108</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>1</td>\n",
       "      <td>195.07</td>\n",
       "      <td>195.07</td>\n",
       "      <td>195.07</td>\n",
       "      <td>195.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-02-15 00:00:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2408</th>\n",
       "      <td>384607</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>1006.58</td>\n",
       "      <td>121.32</td>\n",
       "      <td>255.05</td>\n",
       "      <td>201.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-03 20:36:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89962</th>\n",
       "      <td>6828630</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>6</td>\n",
       "      <td>2683.25</td>\n",
       "      <td>106.23</td>\n",
       "      <td>1507.99</td>\n",
       "      <td>447.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-02-14 12:54:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>159194</th>\n",
       "      <td>11874525</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>1</td>\n",
       "      <td>251.86</td>\n",
       "      <td>251.86</td>\n",
       "      <td>251.86</td>\n",
       "      <td>251.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-07 23:52:56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>134811</th>\n",
       "      <td>9999471</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>510.22</td>\n",
       "      <td>152.65</td>\n",
       "      <td>191.62</td>\n",
       "      <td>170.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-04-10 12:31:26</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              id                     api  count  res_time_sum  res_time_min  \\\n",
       "90607    6859108  /front-api/bill/create      1        195.07        195.07   \n",
       "2408      384607  /front-api/bill/create      5       1006.58        121.32   \n",
       "89962    6828630  /front-api/bill/create      6       2683.25        106.23   \n",
       "159194  11874525  /front-api/bill/create      1        251.86        251.86   \n",
       "134811   9999471  /front-api/bill/create      3        510.22        152.65   \n",
       "\n",
       "        res_time_max  res_time_avg  interval           created_at  \n",
       "90607         195.07         195.0        60  2019-02-15 00:00:11  \n",
       "2408          255.05         201.0        60  2018-11-03 20:36:13  \n",
       "89962        1507.99         447.0        60  2019-02-14 12:54:11  \n",
       "159194        251.86         251.0        60  2019-05-07 23:52:56  \n",
       "134811        191.62         170.0        60  2019-04-10 12:31:26  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(5) #随机采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape # 整体数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                int64\n",
       "api              object\n",
       "count             int64\n",
       "res_time_sum    float64\n",
       "res_time_min    float64\n",
       "res_time_max    float64\n",
       "res_time_avg    float64\n",
       "interval          int64\n",
       "created_at       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes # 数据类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      "id              179496 non-null int64\n",
      "api             179496 non-null object\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "created_at      179496 non-null object\n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info() #查看磁盘占用空间"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. 分析api和interval这两列的数据是否对分析有用，如果无用，说明为什么后将这两列丢弃"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看api\n",
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# api一共179496条的数据\n",
    "# 只有1个独特值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('api',axis =1)# 优化内存，指定axis，指定删除api一列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "\n",
       "   interval           created_at  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看interval\n",
    "df['interval'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# interval 一共179496条数据 interval = 60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('interval',axis =1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "\n",
       "            created_at  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. 使用created_at这一列的数据作为时间索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-02-17 19:16:20\n",
       "freq                        1\n",
       "Name: created_at, dtype: object"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['created_at'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index #当前索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.index = df['created_at'] # 将created_at设为索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['2018-11-01 00:00:07', '2018-11-01 00:01:07', '2018-11-01 00:02:07',\n",
       "       '2018-11-01 00:03:07', '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "       '2018-11-01 00:06:07', '2018-11-01 00:07:07', '2018-11-01 00:08:07',\n",
       "       '2018-11-01 00:09:07',\n",
       "       ...\n",
       "       '2019-05-30 23:01:21', '2019-05-30 23:02:21', '2019-05-30 23:03:21',\n",
       "       '2019-05-30 23:04:21', '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "       '2019-05-30 23:07:21', '2019-05-30 23:08:21', '2019-05-30 23:09:21',\n",
       "       '2019-05-30 23:10:21'],\n",
       "      dtype='object', name='created_at', length=179496)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index # 当前索引类型为字符串"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.index = pd.to_datetime(df.created_at) #将字符串类型索引转化为时间类型索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='created_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index #检查 已转化为时间类型索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:48</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:01:48</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:02:48</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:03:48</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:04:48</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:05:48</th>\n",
       "      <td>11406599</td>\n",
       "      <td>6</td>\n",
       "      <td>2463.78</td>\n",
       "      <td>137.75</td>\n",
       "      <td>1445.82</td>\n",
       "      <td>410.0</td>\n",
       "      <td>2019-05-01 00:05:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:06:48</th>\n",
       "      <td>11406661</td>\n",
       "      <td>6</td>\n",
       "      <td>2875.67</td>\n",
       "      <td>166.32</td>\n",
       "      <td>1304.41</td>\n",
       "      <td>479.0</td>\n",
       "      <td>2019-05-01 00:06:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:07:48</th>\n",
       "      <td>11406751</td>\n",
       "      <td>8</td>\n",
       "      <td>1764.17</td>\n",
       "      <td>93.63</td>\n",
       "      <td>425.96</td>\n",
       "      <td>220.0</td>\n",
       "      <td>2019-05-01 00:07:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:08:48</th>\n",
       "      <td>11406812</td>\n",
       "      <td>8</td>\n",
       "      <td>2577.12</td>\n",
       "      <td>148.68</td>\n",
       "      <td>864.03</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2019-05-01 00:08:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:09:48</th>\n",
       "      <td>11406929</td>\n",
       "      <td>5</td>\n",
       "      <td>929.82</td>\n",
       "      <td>67.42</td>\n",
       "      <td>413.51</td>\n",
       "      <td>185.0</td>\n",
       "      <td>2019-05-01 00:09:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:10:48</th>\n",
       "      <td>11407005</td>\n",
       "      <td>4</td>\n",
       "      <td>912.60</td>\n",
       "      <td>171.17</td>\n",
       "      <td>297.85</td>\n",
       "      <td>228.0</td>\n",
       "      <td>2019-05-01 00:10:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:11:48</th>\n",
       "      <td>11407047</td>\n",
       "      <td>2</td>\n",
       "      <td>279.56</td>\n",
       "      <td>123.47</td>\n",
       "      <td>156.09</td>\n",
       "      <td>139.0</td>\n",
       "      <td>2019-05-01 00:11:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:12:48</th>\n",
       "      <td>11407133</td>\n",
       "      <td>4</td>\n",
       "      <td>714.73</td>\n",
       "      <td>125.50</td>\n",
       "      <td>226.84</td>\n",
       "      <td>178.0</td>\n",
       "      <td>2019-05-01 00:12:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:13:48</th>\n",
       "      <td>11407234</td>\n",
       "      <td>5</td>\n",
       "      <td>1285.32</td>\n",
       "      <td>81.12</td>\n",
       "      <td>436.79</td>\n",
       "      <td>257.0</td>\n",
       "      <td>2019-05-01 00:13:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:14:48</th>\n",
       "      <td>11407282</td>\n",
       "      <td>6</td>\n",
       "      <td>1425.18</td>\n",
       "      <td>99.28</td>\n",
       "      <td>571.42</td>\n",
       "      <td>237.0</td>\n",
       "      <td>2019-05-01 00:14:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:15:48</th>\n",
       "      <td>11407386</td>\n",
       "      <td>5</td>\n",
       "      <td>947.69</td>\n",
       "      <td>97.91</td>\n",
       "      <td>313.41</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2019-05-01 00:15:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:16:48</th>\n",
       "      <td>11407436</td>\n",
       "      <td>4</td>\n",
       "      <td>1000.06</td>\n",
       "      <td>157.33</td>\n",
       "      <td>335.86</td>\n",
       "      <td>250.0</td>\n",
       "      <td>2019-05-01 00:16:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:17:48</th>\n",
       "      <td>11407531</td>\n",
       "      <td>2</td>\n",
       "      <td>279.14</td>\n",
       "      <td>117.30</td>\n",
       "      <td>161.84</td>\n",
       "      <td>139.0</td>\n",
       "      <td>2019-05-01 00:17:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:18:48</th>\n",
       "      <td>11407611</td>\n",
       "      <td>7</td>\n",
       "      <td>994.75</td>\n",
       "      <td>73.33</td>\n",
       "      <td>229.60</td>\n",
       "      <td>142.0</td>\n",
       "      <td>2019-05-01 00:18:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:19:48</th>\n",
       "      <td>11407632</td>\n",
       "      <td>8</td>\n",
       "      <td>2207.46</td>\n",
       "      <td>76.31</td>\n",
       "      <td>1114.91</td>\n",
       "      <td>275.0</td>\n",
       "      <td>2019-05-01 00:19:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:20:48</th>\n",
       "      <td>11407730</td>\n",
       "      <td>6</td>\n",
       "      <td>1244.12</td>\n",
       "      <td>119.18</td>\n",
       "      <td>400.02</td>\n",
       "      <td>207.0</td>\n",
       "      <td>2019-05-01 00:20:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:21:48</th>\n",
       "      <td>11407845</td>\n",
       "      <td>4</td>\n",
       "      <td>892.43</td>\n",
       "      <td>103.66</td>\n",
       "      <td>374.82</td>\n",
       "      <td>223.0</td>\n",
       "      <td>2019-05-01 00:21:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:22:48</th>\n",
       "      <td>11407897</td>\n",
       "      <td>4</td>\n",
       "      <td>1093.26</td>\n",
       "      <td>66.57</td>\n",
       "      <td>434.01</td>\n",
       "      <td>273.0</td>\n",
       "      <td>2019-05-01 00:22:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:23:48</th>\n",
       "      <td>11407980</td>\n",
       "      <td>6</td>\n",
       "      <td>1116.52</td>\n",
       "      <td>89.45</td>\n",
       "      <td>485.38</td>\n",
       "      <td>186.0</td>\n",
       "      <td>2019-05-01 00:23:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:24:48</th>\n",
       "      <td>11408036</td>\n",
       "      <td>6</td>\n",
       "      <td>770.21</td>\n",
       "      <td>77.44</td>\n",
       "      <td>217.87</td>\n",
       "      <td>128.0</td>\n",
       "      <td>2019-05-01 00:24:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:25:48</th>\n",
       "      <td>11408107</td>\n",
       "      <td>6</td>\n",
       "      <td>1308.97</td>\n",
       "      <td>89.86</td>\n",
       "      <td>399.41</td>\n",
       "      <td>218.0</td>\n",
       "      <td>2019-05-01 00:25:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:26:48</th>\n",
       "      <td>11408194</td>\n",
       "      <td>5</td>\n",
       "      <td>848.25</td>\n",
       "      <td>108.51</td>\n",
       "      <td>260.88</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2019-05-01 00:26:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:27:48</th>\n",
       "      <td>11408253</td>\n",
       "      <td>5</td>\n",
       "      <td>2407.06</td>\n",
       "      <td>90.05</td>\n",
       "      <td>1186.62</td>\n",
       "      <td>481.0</td>\n",
       "      <td>2019-05-01 00:27:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:28:48</th>\n",
       "      <td>11408357</td>\n",
       "      <td>4</td>\n",
       "      <td>710.47</td>\n",
       "      <td>163.89</td>\n",
       "      <td>191.80</td>\n",
       "      <td>177.0</td>\n",
       "      <td>2019-05-01 00:28:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:29:48</th>\n",
       "      <td>11408389</td>\n",
       "      <td>7</td>\n",
       "      <td>1675.60</td>\n",
       "      <td>110.26</td>\n",
       "      <td>619.54</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-01 00:29:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:30:49</th>\n",
       "      <td>11473695</td>\n",
       "      <td>3</td>\n",
       "      <td>471.28</td>\n",
       "      <td>86.32</td>\n",
       "      <td>194.36</td>\n",
       "      <td>157.0</td>\n",
       "      <td>2019-05-01 23:30:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:31:49</th>\n",
       "      <td>11473734</td>\n",
       "      <td>9</td>\n",
       "      <td>1753.33</td>\n",
       "      <td>81.64</td>\n",
       "      <td>545.84</td>\n",
       "      <td>194.0</td>\n",
       "      <td>2019-05-01 23:31:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:32:49</th>\n",
       "      <td>11473812</td>\n",
       "      <td>3</td>\n",
       "      <td>566.92</td>\n",
       "      <td>166.21</td>\n",
       "      <td>213.47</td>\n",
       "      <td>188.0</td>\n",
       "      <td>2019-05-01 23:32:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:33:49</th>\n",
       "      <td>11473844</td>\n",
       "      <td>2</td>\n",
       "      <td>258.84</td>\n",
       "      <td>65.36</td>\n",
       "      <td>193.48</td>\n",
       "      <td>129.0</td>\n",
       "      <td>2019-05-01 23:33:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:34:49</th>\n",
       "      <td>11473942</td>\n",
       "      <td>2</td>\n",
       "      <td>300.97</td>\n",
       "      <td>138.49</td>\n",
       "      <td>162.48</td>\n",
       "      <td>150.0</td>\n",
       "      <td>2019-05-01 23:34:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:35:49</th>\n",
       "      <td>11474015</td>\n",
       "      <td>6</td>\n",
       "      <td>792.55</td>\n",
       "      <td>69.46</td>\n",
       "      <td>239.17</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2019-05-01 23:35:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:36:49</th>\n",
       "      <td>11474088</td>\n",
       "      <td>6</td>\n",
       "      <td>1157.81</td>\n",
       "      <td>124.12</td>\n",
       "      <td>423.91</td>\n",
       "      <td>192.0</td>\n",
       "      <td>2019-05-01 23:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:37:49</th>\n",
       "      <td>11474163</td>\n",
       "      <td>2</td>\n",
       "      <td>433.06</td>\n",
       "      <td>98.41</td>\n",
       "      <td>334.65</td>\n",
       "      <td>216.0</td>\n",
       "      <td>2019-05-01 23:37:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:38:49</th>\n",
       "      <td>11474223</td>\n",
       "      <td>4</td>\n",
       "      <td>425.51</td>\n",
       "      <td>75.69</td>\n",
       "      <td>144.11</td>\n",
       "      <td>106.0</td>\n",
       "      <td>2019-05-01 23:38:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:39:49</th>\n",
       "      <td>11474299</td>\n",
       "      <td>4</td>\n",
       "      <td>604.55</td>\n",
       "      <td>103.00</td>\n",
       "      <td>191.69</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2019-05-01 23:39:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:40:49</th>\n",
       "      <td>11474340</td>\n",
       "      <td>4</td>\n",
       "      <td>599.14</td>\n",
       "      <td>141.13</td>\n",
       "      <td>162.50</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2019-05-01 23:40:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:41:49</th>\n",
       "      <td>11474412</td>\n",
       "      <td>3</td>\n",
       "      <td>519.14</td>\n",
       "      <td>130.28</td>\n",
       "      <td>219.06</td>\n",
       "      <td>173.0</td>\n",
       "      <td>2019-05-01 23:41:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:42:49</th>\n",
       "      <td>11474510</td>\n",
       "      <td>1</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.0</td>\n",
       "      <td>2019-05-01 23:42:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:43:49</th>\n",
       "      <td>11474559</td>\n",
       "      <td>8</td>\n",
       "      <td>1741.96</td>\n",
       "      <td>83.68</td>\n",
       "      <td>592.15</td>\n",
       "      <td>217.0</td>\n",
       "      <td>2019-05-01 23:43:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:44:49</th>\n",
       "      <td>11474630</td>\n",
       "      <td>5</td>\n",
       "      <td>573.94</td>\n",
       "      <td>75.98</td>\n",
       "      <td>160.20</td>\n",
       "      <td>114.0</td>\n",
       "      <td>2019-05-01 23:44:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:45:49</th>\n",
       "      <td>11474719</td>\n",
       "      <td>5</td>\n",
       "      <td>1221.15</td>\n",
       "      <td>74.16</td>\n",
       "      <td>726.07</td>\n",
       "      <td>244.0</td>\n",
       "      <td>2019-05-01 23:45:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:46:49</th>\n",
       "      <td>11474783</td>\n",
       "      <td>7</td>\n",
       "      <td>775.40</td>\n",
       "      <td>69.56</td>\n",
       "      <td>165.25</td>\n",
       "      <td>110.0</td>\n",
       "      <td>2019-05-01 23:46:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:47:49</th>\n",
       "      <td>11474860</td>\n",
       "      <td>5</td>\n",
       "      <td>1109.98</td>\n",
       "      <td>114.90</td>\n",
       "      <td>406.98</td>\n",
       "      <td>221.0</td>\n",
       "      <td>2019-05-01 23:47:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:48:49</th>\n",
       "      <td>11474885</td>\n",
       "      <td>5</td>\n",
       "      <td>563.23</td>\n",
       "      <td>83.24</td>\n",
       "      <td>171.42</td>\n",
       "      <td>112.0</td>\n",
       "      <td>2019-05-01 23:48:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:49:49</th>\n",
       "      <td>11474974</td>\n",
       "      <td>3</td>\n",
       "      <td>351.08</td>\n",
       "      <td>69.84</td>\n",
       "      <td>148.27</td>\n",
       "      <td>117.0</td>\n",
       "      <td>2019-05-01 23:49:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:50:49</th>\n",
       "      <td>11475041</td>\n",
       "      <td>4</td>\n",
       "      <td>609.49</td>\n",
       "      <td>89.03</td>\n",
       "      <td>235.60</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2019-05-01 23:50:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:51:49</th>\n",
       "      <td>11475066</td>\n",
       "      <td>4</td>\n",
       "      <td>1285.34</td>\n",
       "      <td>154.31</td>\n",
       "      <td>538.34</td>\n",
       "      <td>321.0</td>\n",
       "      <td>2019-05-01 23:51:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:52:49</th>\n",
       "      <td>11475136</td>\n",
       "      <td>4</td>\n",
       "      <td>884.68</td>\n",
       "      <td>111.59</td>\n",
       "      <td>468.82</td>\n",
       "      <td>221.0</td>\n",
       "      <td>2019-05-01 23:52:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:53:49</th>\n",
       "      <td>11475226</td>\n",
       "      <td>7</td>\n",
       "      <td>1377.46</td>\n",
       "      <td>133.20</td>\n",
       "      <td>248.60</td>\n",
       "      <td>196.0</td>\n",
       "      <td>2019-05-01 23:53:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:54:49</th>\n",
       "      <td>11475311</td>\n",
       "      <td>4</td>\n",
       "      <td>656.67</td>\n",
       "      <td>126.56</td>\n",
       "      <td>243.48</td>\n",
       "      <td>164.0</td>\n",
       "      <td>2019-05-01 23:54:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:55:49</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:56:49</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:57:49</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:58:49</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:59:49</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "2019-05-01 00:02:48  11406347      7       1277.79        109.65   \n",
       "2019-05-01 00:03:48  11406446      7       2137.20        131.55   \n",
       "2019-05-01 00:04:48  11406488     13       2948.70         86.42   \n",
       "2019-05-01 00:05:48  11406599      6       2463.78        137.75   \n",
       "2019-05-01 00:06:48  11406661      6       2875.67        166.32   \n",
       "2019-05-01 00:07:48  11406751      8       1764.17         93.63   \n",
       "2019-05-01 00:08:48  11406812      8       2577.12        148.68   \n",
       "2019-05-01 00:09:48  11406929      5        929.82         67.42   \n",
       "2019-05-01 00:10:48  11407005      4        912.60        171.17   \n",
       "2019-05-01 00:11:48  11407047      2        279.56        123.47   \n",
       "2019-05-01 00:12:48  11407133      4        714.73        125.50   \n",
       "2019-05-01 00:13:48  11407234      5       1285.32         81.12   \n",
       "2019-05-01 00:14:48  11407282      6       1425.18         99.28   \n",
       "2019-05-01 00:15:48  11407386      5        947.69         97.91   \n",
       "2019-05-01 00:16:48  11407436      4       1000.06        157.33   \n",
       "2019-05-01 00:17:48  11407531      2        279.14        117.30   \n",
       "2019-05-01 00:18:48  11407611      7        994.75         73.33   \n",
       "2019-05-01 00:19:48  11407632      8       2207.46         76.31   \n",
       "2019-05-01 00:20:48  11407730      6       1244.12        119.18   \n",
       "2019-05-01 00:21:48  11407845      4        892.43        103.66   \n",
       "2019-05-01 00:22:48  11407897      4       1093.26         66.57   \n",
       "2019-05-01 00:23:48  11407980      6       1116.52         89.45   \n",
       "2019-05-01 00:24:48  11408036      6        770.21         77.44   \n",
       "2019-05-01 00:25:48  11408107      6       1308.97         89.86   \n",
       "2019-05-01 00:26:48  11408194      5        848.25        108.51   \n",
       "2019-05-01 00:27:48  11408253      5       2407.06         90.05   \n",
       "2019-05-01 00:28:48  11408357      4        710.47        163.89   \n",
       "2019-05-01 00:29:48  11408389      7       1675.60        110.26   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-01 23:30:49  11473695      3        471.28         86.32   \n",
       "2019-05-01 23:31:49  11473734      9       1753.33         81.64   \n",
       "2019-05-01 23:32:49  11473812      3        566.92        166.21   \n",
       "2019-05-01 23:33:49  11473844      2        258.84         65.36   \n",
       "2019-05-01 23:34:49  11473942      2        300.97        138.49   \n",
       "2019-05-01 23:35:49  11474015      6        792.55         69.46   \n",
       "2019-05-01 23:36:49  11474088      6       1157.81        124.12   \n",
       "2019-05-01 23:37:49  11474163      2        433.06         98.41   \n",
       "2019-05-01 23:38:49  11474223      4        425.51         75.69   \n",
       "2019-05-01 23:39:49  11474299      4        604.55        103.00   \n",
       "2019-05-01 23:40:49  11474340      4        599.14        141.13   \n",
       "2019-05-01 23:41:49  11474412      3        519.14        130.28   \n",
       "2019-05-01 23:42:49  11474510      1        336.79        336.79   \n",
       "2019-05-01 23:43:49  11474559      8       1741.96         83.68   \n",
       "2019-05-01 23:44:49  11474630      5        573.94         75.98   \n",
       "2019-05-01 23:45:49  11474719      5       1221.15         74.16   \n",
       "2019-05-01 23:46:49  11474783      7        775.40         69.56   \n",
       "2019-05-01 23:47:49  11474860      5       1109.98        114.90   \n",
       "2019-05-01 23:48:49  11474885      5        563.23         83.24   \n",
       "2019-05-01 23:49:49  11474974      3        351.08         69.84   \n",
       "2019-05-01 23:50:49  11475041      4        609.49         89.03   \n",
       "2019-05-01 23:51:49  11475066      4       1285.34        154.31   \n",
       "2019-05-01 23:52:49  11475136      4        884.68        111.59   \n",
       "2019-05-01 23:53:49  11475226      7       1377.46        133.20   \n",
       "2019-05-01 23:54:49  11475311      4        656.67        126.56   \n",
       "2019-05-01 23:55:49  11475363      6       1083.97         70.85   \n",
       "2019-05-01 23:56:49  11475483      4        840.00        117.31   \n",
       "2019-05-01 23:57:49  11475550      2        295.51        101.71   \n",
       "2019-05-01 23:58:49  11475597      2        431.99         84.43   \n",
       "2019-05-01 23:59:49  11475664      3        428.84        103.58   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2019-05-01 00:00:48        992.46         350.0  2019-05-01 00:00:48  \n",
       "2019-05-01 00:01:48        987.47         368.0  2019-05-01 00:01:48  \n",
       "2019-05-01 00:02:48        236.73         182.0  2019-05-01 00:02:48  \n",
       "2019-05-01 00:03:48        920.52         305.0  2019-05-01 00:03:48  \n",
       "2019-05-01 00:04:48        491.31         226.0  2019-05-01 00:04:48  \n",
       "2019-05-01 00:05:48       1445.82         410.0  2019-05-01 00:05:48  \n",
       "2019-05-01 00:06:48       1304.41         479.0  2019-05-01 00:06:48  \n",
       "2019-05-01 00:07:48        425.96         220.0  2019-05-01 00:07:48  \n",
       "2019-05-01 00:08:48        864.03         322.0  2019-05-01 00:08:48  \n",
       "2019-05-01 00:09:48        413.51         185.0  2019-05-01 00:09:48  \n",
       "2019-05-01 00:10:48        297.85         228.0  2019-05-01 00:10:48  \n",
       "2019-05-01 00:11:48        156.09         139.0  2019-05-01 00:11:48  \n",
       "2019-05-01 00:12:48        226.84         178.0  2019-05-01 00:12:48  \n",
       "2019-05-01 00:13:48        436.79         257.0  2019-05-01 00:13:48  \n",
       "2019-05-01 00:14:48        571.42         237.0  2019-05-01 00:14:48  \n",
       "2019-05-01 00:15:48        313.41         189.0  2019-05-01 00:15:48  \n",
       "2019-05-01 00:16:48        335.86         250.0  2019-05-01 00:16:48  \n",
       "2019-05-01 00:17:48        161.84         139.0  2019-05-01 00:17:48  \n",
       "2019-05-01 00:18:48        229.60         142.0  2019-05-01 00:18:48  \n",
       "2019-05-01 00:19:48       1114.91         275.0  2019-05-01 00:19:48  \n",
       "2019-05-01 00:20:48        400.02         207.0  2019-05-01 00:20:48  \n",
       "2019-05-01 00:21:48        374.82         223.0  2019-05-01 00:21:48  \n",
       "2019-05-01 00:22:48        434.01         273.0  2019-05-01 00:22:48  \n",
       "2019-05-01 00:23:48        485.38         186.0  2019-05-01 00:23:48  \n",
       "2019-05-01 00:24:48        217.87         128.0  2019-05-01 00:24:48  \n",
       "2019-05-01 00:25:48        399.41         218.0  2019-05-01 00:25:48  \n",
       "2019-05-01 00:26:48        260.88         169.0  2019-05-01 00:26:48  \n",
       "2019-05-01 00:27:48       1186.62         481.0  2019-05-01 00:27:48  \n",
       "2019-05-01 00:28:48        191.80         177.0  2019-05-01 00:28:48  \n",
       "2019-05-01 00:29:48        619.54         239.0  2019-05-01 00:29:48  \n",
       "...                           ...           ...                  ...  \n",
       "2019-05-01 23:30:49        194.36         157.0  2019-05-01 23:30:49  \n",
       "2019-05-01 23:31:49        545.84         194.0  2019-05-01 23:31:49  \n",
       "2019-05-01 23:32:49        213.47         188.0  2019-05-01 23:32:49  \n",
       "2019-05-01 23:33:49        193.48         129.0  2019-05-01 23:33:49  \n",
       "2019-05-01 23:34:49        162.48         150.0  2019-05-01 23:34:49  \n",
       "2019-05-01 23:35:49        239.17         132.0  2019-05-01 23:35:49  \n",
       "2019-05-01 23:36:49        423.91         192.0  2019-05-01 23:36:49  \n",
       "2019-05-01 23:37:49        334.65         216.0  2019-05-01 23:37:49  \n",
       "2019-05-01 23:38:49        144.11         106.0  2019-05-01 23:38:49  \n",
       "2019-05-01 23:39:49        191.69         151.0  2019-05-01 23:39:49  \n",
       "2019-05-01 23:40:49        162.50         149.0  2019-05-01 23:40:49  \n",
       "2019-05-01 23:41:49        219.06         173.0  2019-05-01 23:41:49  \n",
       "2019-05-01 23:42:49        336.79         336.0  2019-05-01 23:42:49  \n",
       "2019-05-01 23:43:49        592.15         217.0  2019-05-01 23:43:49  \n",
       "2019-05-01 23:44:49        160.20         114.0  2019-05-01 23:44:49  \n",
       "2019-05-01 23:45:49        726.07         244.0  2019-05-01 23:45:49  \n",
       "2019-05-01 23:46:49        165.25         110.0  2019-05-01 23:46:49  \n",
       "2019-05-01 23:47:49        406.98         221.0  2019-05-01 23:47:49  \n",
       "2019-05-01 23:48:49        171.42         112.0  2019-05-01 23:48:49  \n",
       "2019-05-01 23:49:49        148.27         117.0  2019-05-01 23:49:49  \n",
       "2019-05-01 23:50:49        235.60         152.0  2019-05-01 23:50:49  \n",
       "2019-05-01 23:51:49        538.34         321.0  2019-05-01 23:51:49  \n",
       "2019-05-01 23:52:49        468.82         221.0  2019-05-01 23:52:49  \n",
       "2019-05-01 23:53:49        248.60         196.0  2019-05-01 23:53:49  \n",
       "2019-05-01 23:54:49        243.48         164.0  2019-05-01 23:54:49  \n",
       "2019-05-01 23:55:49        262.22         180.0  2019-05-01 23:55:49  \n",
       "2019-05-01 23:56:49        382.63         210.0  2019-05-01 23:56:49  \n",
       "2019-05-01 23:57:49        193.80         147.0  2019-05-01 23:57:49  \n",
       "2019-05-01 23:58:49        347.56         215.0  2019-05-01 23:58:49  \n",
       "2019-05-01 23:59:49        206.57         142.0  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 7 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2019-5-1']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 6. 分析api调用次数情况，例如，在一天中，哪些时间是访问高峰，哪些时间段访问比较,如图 所示，从凌晨2点到11点访问少，业务高峰出在现下午两三点，晚上八九点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1.794960e+05</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>6.877739e+06</td>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.012494e+06</td>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.626440e+05</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>3.825233e+06</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>6.811510e+06</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>9.981455e+06</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.019163e+09</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 id          count   res_time_sum   res_time_min  \\\n",
       "count  1.794960e+05  179496.000000  179496.000000  179496.000000   \n",
       "mean   6.877739e+06       7.175909    1393.177832     108.419626   \n",
       "std    6.012494e+06       4.325160    1499.486073      79.640693   \n",
       "min    1.626440e+05       1.000000      36.550000       3.210000   \n",
       "25%    3.825233e+06       4.000000     607.707500      83.410000   \n",
       "50%    6.811510e+06       7.000000    1154.905000      97.120000   \n",
       "75%    9.981455e+06      10.000000    1834.117500     116.990000   \n",
       "max    2.019163e+09      31.000000  142650.550000   18896.640000   \n",
       "\n",
       "        res_time_max   res_time_avg  \n",
       "count  179496.000000  179496.000000  \n",
       "mean      359.880374     187.812208  \n",
       "std       638.919827     224.464813  \n",
       "min        36.550000      36.000000  \n",
       "25%       198.280000     144.000000  \n",
       "50%       256.090000     167.000000  \n",
       "75%       374.410000     202.000000  \n",
       "max    142468.270000   71325.000000  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11334cb70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 初步分析count，直方图\n",
    "df['count'].hist() \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e966c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 表示接口调用分布情况，大部分都在10次以内 ，反映出每分钟调用的次数分布情况\n",
    "df['count'].hist(bins = 30) #30个分隔\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a833c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 切出一天的数据，在一天之中，绘制一天时段的接口调用情况\n",
    "df['2019-5-1']['count'].plot() # 选取 2019-5-1 的count数据 绘图\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 凌晨时间无人访问，下午2，3点第一个访问高峰，晚上，8，9点，第二个访问高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "created_at                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 用count重新采样，用一个小时进行采样\n",
    "df2 = df['2019-5-1']\n",
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e942da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制线图\n",
    "df2['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e9424e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 折线图和直方图，可以看到业务的高峰时段在什么地方， 分不清具体时间，绘制柱状图\n",
    "plt.figure(figsize = (10,3)) # 单位是英寸\n",
    "df2['count'].plot(kind = 'bar') # 绘制柱状图\n",
    "plt.xticks(rotation = 60) #文字旋转角度\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a84278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 用箱线图 分析有没有异常时段，访问接口过于频繁，可能就是黑客潮水攻击\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True, meanline = True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>227295</td>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>228772</td>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>229667</td>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>311202</td>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>353337</td>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 20:16:13</th>\n",
       "      <td>382826</td>\n",
       "      <td>21</td>\n",
       "      <td>2992.24</td>\n",
       "      <td>86.28</td>\n",
       "      <td>246.71</td>\n",
       "      <td>142.0</td>\n",
       "      <td>2018-11-03 20:16:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 22:01:13</th>\n",
       "      <td>391993</td>\n",
       "      <td>22</td>\n",
       "      <td>3615.11</td>\n",
       "      <td>108.00</td>\n",
       "      <td>231.49</td>\n",
       "      <td>164.0</td>\n",
       "      <td>2018-11-03 22:01:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 22:42:13</th>\n",
       "      <td>395648</td>\n",
       "      <td>28</td>\n",
       "      <td>4332.65</td>\n",
       "      <td>76.26</td>\n",
       "      <td>263.33</td>\n",
       "      <td>154.0</td>\n",
       "      <td>2018-11-03 22:42:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-05 15:49:17</th>\n",
       "      <td>516174</td>\n",
       "      <td>24</td>\n",
       "      <td>3723.64</td>\n",
       "      <td>88.97</td>\n",
       "      <td>280.92</td>\n",
       "      <td>155.0</td>\n",
       "      <td>2018-11-05 15:49:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-05 19:33:17</th>\n",
       "      <td>535419</td>\n",
       "      <td>21</td>\n",
       "      <td>2831.71</td>\n",
       "      <td>78.66</td>\n",
       "      <td>170.69</td>\n",
       "      <td>134.0</td>\n",
       "      <td>2018-11-05 19:33:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-06 20:49:20</th>\n",
       "      <td>617417</td>\n",
       "      <td>21</td>\n",
       "      <td>3414.39</td>\n",
       "      <td>87.02</td>\n",
       "      <td>257.39</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-06 20:49:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 15:56:23</th>\n",
       "      <td>744622</td>\n",
       "      <td>21</td>\n",
       "      <td>3356.42</td>\n",
       "      <td>85.43</td>\n",
       "      <td>252.38</td>\n",
       "      <td>159.0</td>\n",
       "      <td>2018-11-08 15:56:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:50:23</th>\n",
       "      <td>768576</td>\n",
       "      <td>23</td>\n",
       "      <td>3998.72</td>\n",
       "      <td>90.64</td>\n",
       "      <td>398.60</td>\n",
       "      <td>173.0</td>\n",
       "      <td>2018-11-08 20:50:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:51:23</th>\n",
       "      <td>768642</td>\n",
       "      <td>21</td>\n",
       "      <td>3736.10</td>\n",
       "      <td>87.71</td>\n",
       "      <td>327.77</td>\n",
       "      <td>177.0</td>\n",
       "      <td>2018-11-08 20:51:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:59:23</th>\n",
       "      <td>769282</td>\n",
       "      <td>21</td>\n",
       "      <td>3161.50</td>\n",
       "      <td>89.86</td>\n",
       "      <td>423.33</td>\n",
       "      <td>150.0</td>\n",
       "      <td>2018-11-08 20:59:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 20:49:25</th>\n",
       "      <td>844969</td>\n",
       "      <td>21</td>\n",
       "      <td>3962.84</td>\n",
       "      <td>129.44</td>\n",
       "      <td>322.40</td>\n",
       "      <td>188.0</td>\n",
       "      <td>2018-11-09 20:49:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 21:41:25</th>\n",
       "      <td>849468</td>\n",
       "      <td>21</td>\n",
       "      <td>3199.91</td>\n",
       "      <td>75.82</td>\n",
       "      <td>276.96</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-09 21:41:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 22:09:25</th>\n",
       "      <td>851978</td>\n",
       "      <td>22</td>\n",
       "      <td>3582.53</td>\n",
       "      <td>108.02</td>\n",
       "      <td>246.32</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-09 22:09:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 20:07:26</th>\n",
       "      <td>917452</td>\n",
       "      <td>22</td>\n",
       "      <td>3362.64</td>\n",
       "      <td>80.28</td>\n",
       "      <td>225.21</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-10 20:07:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 21:17:26</th>\n",
       "      <td>923498</td>\n",
       "      <td>21</td>\n",
       "      <td>3407.67</td>\n",
       "      <td>100.55</td>\n",
       "      <td>263.82</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-10 21:17:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 21:48:26</th>\n",
       "      <td>926260</td>\n",
       "      <td>21</td>\n",
       "      <td>3274.11</td>\n",
       "      <td>84.12</td>\n",
       "      <td>354.66</td>\n",
       "      <td>155.0</td>\n",
       "      <td>2018-11-10 21:48:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 22:03:26</th>\n",
       "      <td>927593</td>\n",
       "      <td>21</td>\n",
       "      <td>3525.31</td>\n",
       "      <td>119.81</td>\n",
       "      <td>283.33</td>\n",
       "      <td>167.0</td>\n",
       "      <td>2018-11-10 22:03:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 17:02:28</th>\n",
       "      <td>978285</td>\n",
       "      <td>21</td>\n",
       "      <td>3123.46</td>\n",
       "      <td>68.51</td>\n",
       "      <td>359.94</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-11 17:02:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 20:45:28</th>\n",
       "      <td>997287</td>\n",
       "      <td>21</td>\n",
       "      <td>3515.21</td>\n",
       "      <td>85.81</td>\n",
       "      <td>297.33</td>\n",
       "      <td>167.0</td>\n",
       "      <td>2018-11-11 20:45:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 20:48:28</th>\n",
       "      <td>997553</td>\n",
       "      <td>21</td>\n",
       "      <td>3006.97</td>\n",
       "      <td>83.48</td>\n",
       "      <td>353.50</td>\n",
       "      <td>143.0</td>\n",
       "      <td>2018-11-11 20:48:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 22:17:28</th>\n",
       "      <td>1005575</td>\n",
       "      <td>23</td>\n",
       "      <td>3709.56</td>\n",
       "      <td>92.62</td>\n",
       "      <td>314.90</td>\n",
       "      <td>161.0</td>\n",
       "      <td>2018-11-11 22:17:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 16:28:30</th>\n",
       "      <td>1053257</td>\n",
       "      <td>22</td>\n",
       "      <td>3328.76</td>\n",
       "      <td>78.25</td>\n",
       "      <td>257.35</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2018-11-12 16:28:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 21:01:30</th>\n",
       "      <td>1076982</td>\n",
       "      <td>21</td>\n",
       "      <td>3177.52</td>\n",
       "      <td>92.07</td>\n",
       "      <td>226.59</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2018-11-12 21:01:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 21:06:30</th>\n",
       "      <td>1077421</td>\n",
       "      <td>21</td>\n",
       "      <td>3887.31</td>\n",
       "      <td>100.05</td>\n",
       "      <td>292.41</td>\n",
       "      <td>185.0</td>\n",
       "      <td>2018-11-12 21:06:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 15:51:32</th>\n",
       "      <td>1127427</td>\n",
       "      <td>23</td>\n",
       "      <td>3505.80</td>\n",
       "      <td>78.76</td>\n",
       "      <td>249.86</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-13 15:51:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 16:08:18</th>\n",
       "      <td>13198417</td>\n",
       "      <td>27</td>\n",
       "      <td>13177.00</td>\n",
       "      <td>80.89</td>\n",
       "      <td>2768.33</td>\n",
       "      <td>488.0</td>\n",
       "      <td>2019-05-27 16:08:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 18:29:18</th>\n",
       "      <td>13209102</td>\n",
       "      <td>23</td>\n",
       "      <td>5264.64</td>\n",
       "      <td>90.01</td>\n",
       "      <td>515.05</td>\n",
       "      <td>228.0</td>\n",
       "      <td>2019-05-27 18:29:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 19:28:18</th>\n",
       "      <td>13213583</td>\n",
       "      <td>21</td>\n",
       "      <td>4612.10</td>\n",
       "      <td>93.98</td>\n",
       "      <td>372.50</td>\n",
       "      <td>219.0</td>\n",
       "      <td>2019-05-27 19:28:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 19:49:18</th>\n",
       "      <td>13215160</td>\n",
       "      <td>28</td>\n",
       "      <td>5647.21</td>\n",
       "      <td>78.28</td>\n",
       "      <td>648.65</td>\n",
       "      <td>201.0</td>\n",
       "      <td>2019-05-27 19:49:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 20:03:18</th>\n",
       "      <td>13216219</td>\n",
       "      <td>21</td>\n",
       "      <td>5146.42</td>\n",
       "      <td>97.18</td>\n",
       "      <td>1250.87</td>\n",
       "      <td>245.0</td>\n",
       "      <td>2019-05-27 20:03:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 20:05:18</th>\n",
       "      <td>13216360</td>\n",
       "      <td>21</td>\n",
       "      <td>5242.64</td>\n",
       "      <td>113.51</td>\n",
       "      <td>507.65</td>\n",
       "      <td>249.0</td>\n",
       "      <td>2019-05-27 20:05:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:13:18</th>\n",
       "      <td>13221934</td>\n",
       "      <td>26</td>\n",
       "      <td>4656.33</td>\n",
       "      <td>102.24</td>\n",
       "      <td>300.69</td>\n",
       "      <td>179.0</td>\n",
       "      <td>2019-05-27 21:13:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:16:18</th>\n",
       "      <td>13222147</td>\n",
       "      <td>24</td>\n",
       "      <td>5160.23</td>\n",
       "      <td>95.19</td>\n",
       "      <td>538.70</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-27 21:16:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:58:18</th>\n",
       "      <td>13225601</td>\n",
       "      <td>25</td>\n",
       "      <td>9587.37</td>\n",
       "      <td>97.71</td>\n",
       "      <td>1304.84</td>\n",
       "      <td>383.0</td>\n",
       "      <td>2019-05-27 21:58:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 22:01:18</th>\n",
       "      <td>13225838</td>\n",
       "      <td>21</td>\n",
       "      <td>5813.94</td>\n",
       "      <td>118.05</td>\n",
       "      <td>1130.25</td>\n",
       "      <td>276.0</td>\n",
       "      <td>2019-05-27 22:01:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 16:19:19</th>\n",
       "      <td>13270790</td>\n",
       "      <td>24</td>\n",
       "      <td>5168.07</td>\n",
       "      <td>94.52</td>\n",
       "      <td>869.76</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-28 16:19:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 20:51:19</th>\n",
       "      <td>13290172</td>\n",
       "      <td>23</td>\n",
       "      <td>7090.56</td>\n",
       "      <td>89.50</td>\n",
       "      <td>1613.17</td>\n",
       "      <td>308.0</td>\n",
       "      <td>2019-05-28 20:51:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 20:52:19</th>\n",
       "      <td>13290236</td>\n",
       "      <td>23</td>\n",
       "      <td>5801.02</td>\n",
       "      <td>77.39</td>\n",
       "      <td>802.72</td>\n",
       "      <td>252.0</td>\n",
       "      <td>2019-05-28 20:52:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 22:53:19</th>\n",
       "      <td>13299513</td>\n",
       "      <td>22</td>\n",
       "      <td>4000.22</td>\n",
       "      <td>83.75</td>\n",
       "      <td>356.17</td>\n",
       "      <td>181.0</td>\n",
       "      <td>2019-05-28 22:53:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 16:02:20</th>\n",
       "      <td>13337463</td>\n",
       "      <td>23</td>\n",
       "      <td>10137.39</td>\n",
       "      <td>96.03</td>\n",
       "      <td>1245.05</td>\n",
       "      <td>440.0</td>\n",
       "      <td>2019-05-29 16:02:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 20:31:20</th>\n",
       "      <td>13357016</td>\n",
       "      <td>22</td>\n",
       "      <td>8799.29</td>\n",
       "      <td>105.93</td>\n",
       "      <td>2386.80</td>\n",
       "      <td>399.0</td>\n",
       "      <td>2019-05-29 20:31:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 21:12:20</th>\n",
       "      <td>13360336</td>\n",
       "      <td>21</td>\n",
       "      <td>4702.18</td>\n",
       "      <td>97.59</td>\n",
       "      <td>699.19</td>\n",
       "      <td>223.0</td>\n",
       "      <td>2019-05-29 21:12:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 21:34:20</th>\n",
       "      <td>13362012</td>\n",
       "      <td>24</td>\n",
       "      <td>5368.32</td>\n",
       "      <td>73.77</td>\n",
       "      <td>742.53</td>\n",
       "      <td>223.0</td>\n",
       "      <td>2019-05-29 21:34:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 22:46:20</th>\n",
       "      <td>13367764</td>\n",
       "      <td>21</td>\n",
       "      <td>6892.93</td>\n",
       "      <td>137.39</td>\n",
       "      <td>1309.64</td>\n",
       "      <td>328.0</td>\n",
       "      <td>2019-05-29 22:46:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 23:02:20</th>\n",
       "      <td>13368878</td>\n",
       "      <td>24</td>\n",
       "      <td>6331.52</td>\n",
       "      <td>103.16</td>\n",
       "      <td>1196.49</td>\n",
       "      <td>263.0</td>\n",
       "      <td>2019-05-29 23:02:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 20:02:21</th>\n",
       "      <td>13424237</td>\n",
       "      <td>24</td>\n",
       "      <td>5038.76</td>\n",
       "      <td>95.34</td>\n",
       "      <td>445.75</td>\n",
       "      <td>209.0</td>\n",
       "      <td>2019-05-30 20:02:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 20:16:21</th>\n",
       "      <td>13425348</td>\n",
       "      <td>26</td>\n",
       "      <td>6415.77</td>\n",
       "      <td>85.31</td>\n",
       "      <td>860.74</td>\n",
       "      <td>246.0</td>\n",
       "      <td>2019-05-30 20:16:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:17:21</th>\n",
       "      <td>13430343</td>\n",
       "      <td>23</td>\n",
       "      <td>4954.28</td>\n",
       "      <td>97.52</td>\n",
       "      <td>427.05</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-30 21:17:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:24:21</th>\n",
       "      <td>13430888</td>\n",
       "      <td>21</td>\n",
       "      <td>3977.18</td>\n",
       "      <td>93.16</td>\n",
       "      <td>383.06</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2019-05-30 21:24:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:28:21</th>\n",
       "      <td>13431138</td>\n",
       "      <td>25</td>\n",
       "      <td>8782.18</td>\n",
       "      <td>98.49</td>\n",
       "      <td>2549.79</td>\n",
       "      <td>351.0</td>\n",
       "      <td>2019-05-30 21:28:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>13431497</td>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>13432325</td>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>13432632</td>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>13433108</td>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>13435027</td>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2018-11-01 20:47:09    227295     21       3117.20         84.90   \n",
       "2018-11-01 21:03:09    228772     21       3706.20         78.12   \n",
       "2018-11-01 21:13:09    229667     24       4602.03         76.31   \n",
       "2018-11-02 21:34:11    311202     30       4610.15         72.49   \n",
       "2018-11-03 14:20:13    353337     21       3113.93         74.29   \n",
       "2018-11-03 20:16:13    382826     21       2992.24         86.28   \n",
       "2018-11-03 22:01:13    391993     22       3615.11        108.00   \n",
       "2018-11-03 22:42:13    395648     28       4332.65         76.26   \n",
       "2018-11-05 15:49:17    516174     24       3723.64         88.97   \n",
       "2018-11-05 19:33:17    535419     21       2831.71         78.66   \n",
       "2018-11-06 20:49:20    617417     21       3414.39         87.02   \n",
       "2018-11-08 15:56:23    744622     21       3356.42         85.43   \n",
       "2018-11-08 20:50:23    768576     23       3998.72         90.64   \n",
       "2018-11-08 20:51:23    768642     21       3736.10         87.71   \n",
       "2018-11-08 20:59:23    769282     21       3161.50         89.86   \n",
       "2018-11-09 20:49:25    844969     21       3962.84        129.44   \n",
       "2018-11-09 21:41:25    849468     21       3199.91         75.82   \n",
       "2018-11-09 22:09:25    851978     22       3582.53        108.02   \n",
       "2018-11-10 20:07:26    917452     22       3362.64         80.28   \n",
       "2018-11-10 21:17:26    923498     21       3407.67        100.55   \n",
       "2018-11-10 21:48:26    926260     21       3274.11         84.12   \n",
       "2018-11-10 22:03:26    927593     21       3525.31        119.81   \n",
       "2018-11-11 17:02:28    978285     21       3123.46         68.51   \n",
       "2018-11-11 20:45:28    997287     21       3515.21         85.81   \n",
       "2018-11-11 20:48:28    997553     21       3006.97         83.48   \n",
       "2018-11-11 22:17:28   1005575     23       3709.56         92.62   \n",
       "2018-11-12 16:28:30   1053257     22       3328.76         78.25   \n",
       "2018-11-12 21:01:30   1076982     21       3177.52         92.07   \n",
       "2018-11-12 21:06:30   1077421     21       3887.31        100.05   \n",
       "2018-11-13 15:51:32   1127427     23       3505.80         78.76   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-27 16:08:18  13198417     27      13177.00         80.89   \n",
       "2019-05-27 18:29:18  13209102     23       5264.64         90.01   \n",
       "2019-05-27 19:28:18  13213583     21       4612.10         93.98   \n",
       "2019-05-27 19:49:18  13215160     28       5647.21         78.28   \n",
       "2019-05-27 20:03:18  13216219     21       5146.42         97.18   \n",
       "2019-05-27 20:05:18  13216360     21       5242.64        113.51   \n",
       "2019-05-27 21:13:18  13221934     26       4656.33        102.24   \n",
       "2019-05-27 21:16:18  13222147     24       5160.23         95.19   \n",
       "2019-05-27 21:58:18  13225601     25       9587.37         97.71   \n",
       "2019-05-27 22:01:18  13225838     21       5813.94        118.05   \n",
       "2019-05-28 16:19:19  13270790     24       5168.07         94.52   \n",
       "2019-05-28 20:51:19  13290172     23       7090.56         89.50   \n",
       "2019-05-28 20:52:19  13290236     23       5801.02         77.39   \n",
       "2019-05-28 22:53:19  13299513     22       4000.22         83.75   \n",
       "2019-05-29 16:02:20  13337463     23      10137.39         96.03   \n",
       "2019-05-29 20:31:20  13357016     22       8799.29        105.93   \n",
       "2019-05-29 21:12:20  13360336     21       4702.18         97.59   \n",
       "2019-05-29 21:34:20  13362012     24       5368.32         73.77   \n",
       "2019-05-29 22:46:20  13367764     21       6892.93        137.39   \n",
       "2019-05-29 23:02:20  13368878     24       6331.52        103.16   \n",
       "2019-05-30 20:02:21  13424237     24       5038.76         95.34   \n",
       "2019-05-30 20:16:21  13425348     26       6415.77         85.31   \n",
       "2019-05-30 21:17:21  13430343     23       4954.28         97.52   \n",
       "2019-05-30 21:24:21  13430888     21       3977.18         93.16   \n",
       "2019-05-30 21:28:21  13431138     25       8782.18         98.49   \n",
       "2019-05-30 21:33:21  13431497     27       6456.64         99.65   \n",
       "2019-05-30 21:43:21  13432325     21       6371.84         65.98   \n",
       "2019-05-30 21:47:21  13432632     21       3992.83         87.83   \n",
       "2019-05-30 21:53:21  13433108     24       8467.02        120.22   \n",
       "2019-05-30 22:17:21  13435027     21       4926.35         85.01   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2018-11-01 20:47:09        260.82         148.0  2018-11-01 20:47:09  \n",
       "2018-11-01 21:03:09        321.47         176.0  2018-11-01 21:03:09  \n",
       "2018-11-01 21:13:09        391.12         191.0  2018-11-01 21:13:09  \n",
       "2018-11-02 21:34:11        463.41         153.0  2018-11-02 21:34:11  \n",
       "2018-11-03 14:20:13        266.20         148.0  2018-11-03 14:20:13  \n",
       "2018-11-03 20:16:13        246.71         142.0  2018-11-03 20:16:13  \n",
       "2018-11-03 22:01:13        231.49         164.0  2018-11-03 22:01:13  \n",
       "2018-11-03 22:42:13        263.33         154.0  2018-11-03 22:42:13  \n",
       "2018-11-05 15:49:17        280.92         155.0  2018-11-05 15:49:17  \n",
       "2018-11-05 19:33:17        170.69         134.0  2018-11-05 19:33:17  \n",
       "2018-11-06 20:49:20        257.39         162.0  2018-11-06 20:49:20  \n",
       "2018-11-08 15:56:23        252.38         159.0  2018-11-08 15:56:23  \n",
       "2018-11-08 20:50:23        398.60         173.0  2018-11-08 20:50:23  \n",
       "2018-11-08 20:51:23        327.77         177.0  2018-11-08 20:51:23  \n",
       "2018-11-08 20:59:23        423.33         150.0  2018-11-08 20:59:23  \n",
       "2018-11-09 20:49:25        322.40         188.0  2018-11-09 20:49:25  \n",
       "2018-11-09 21:41:25        276.96         152.0  2018-11-09 21:41:25  \n",
       "2018-11-09 22:09:25        246.32         162.0  2018-11-09 22:09:25  \n",
       "2018-11-10 20:07:26        225.21         152.0  2018-11-10 20:07:26  \n",
       "2018-11-10 21:17:26        263.82         162.0  2018-11-10 21:17:26  \n",
       "2018-11-10 21:48:26        354.66         155.0  2018-11-10 21:48:26  \n",
       "2018-11-10 22:03:26        283.33         167.0  2018-11-10 22:03:26  \n",
       "2018-11-11 17:02:28        359.94         148.0  2018-11-11 17:02:28  \n",
       "2018-11-11 20:45:28        297.33         167.0  2018-11-11 20:45:28  \n",
       "2018-11-11 20:48:28        353.50         143.0  2018-11-11 20:48:28  \n",
       "2018-11-11 22:17:28        314.90         161.0  2018-11-11 22:17:28  \n",
       "2018-11-12 16:28:30        257.35         151.0  2018-11-12 16:28:30  \n",
       "2018-11-12 21:01:30        226.59         151.0  2018-11-12 21:01:30  \n",
       "2018-11-12 21:06:30        292.41         185.0  2018-11-12 21:06:30  \n",
       "2018-11-13 15:51:32        249.86         152.0  2018-11-13 15:51:32  \n",
       "...                           ...           ...                  ...  \n",
       "2019-05-27 16:08:18       2768.33         488.0  2019-05-27 16:08:18  \n",
       "2019-05-27 18:29:18        515.05         228.0  2019-05-27 18:29:18  \n",
       "2019-05-27 19:28:18        372.50         219.0  2019-05-27 19:28:18  \n",
       "2019-05-27 19:49:18        648.65         201.0  2019-05-27 19:49:18  \n",
       "2019-05-27 20:03:18       1250.87         245.0  2019-05-27 20:03:18  \n",
       "2019-05-27 20:05:18        507.65         249.0  2019-05-27 20:05:18  \n",
       "2019-05-27 21:13:18        300.69         179.0  2019-05-27 21:13:18  \n",
       "2019-05-27 21:16:18        538.70         215.0  2019-05-27 21:16:18  \n",
       "2019-05-27 21:58:18       1304.84         383.0  2019-05-27 21:58:18  \n",
       "2019-05-27 22:01:18       1130.25         276.0  2019-05-27 22:01:18  \n",
       "2019-05-28 16:19:19        869.76         215.0  2019-05-28 16:19:19  \n",
       "2019-05-28 20:51:19       1613.17         308.0  2019-05-28 20:51:19  \n",
       "2019-05-28 20:52:19        802.72         252.0  2019-05-28 20:52:19  \n",
       "2019-05-28 22:53:19        356.17         181.0  2019-05-28 22:53:19  \n",
       "2019-05-29 16:02:20       1245.05         440.0  2019-05-29 16:02:20  \n",
       "2019-05-29 20:31:20       2386.80         399.0  2019-05-29 20:31:20  \n",
       "2019-05-29 21:12:20        699.19         223.0  2019-05-29 21:12:20  \n",
       "2019-05-29 21:34:20        742.53         223.0  2019-05-29 21:34:20  \n",
       "2019-05-29 22:46:20       1309.64         328.0  2019-05-29 22:46:20  \n",
       "2019-05-29 23:02:20       1196.49         263.0  2019-05-29 23:02:20  \n",
       "2019-05-30 20:02:21        445.75         209.0  2019-05-30 20:02:21  \n",
       "2019-05-30 20:16:21        860.74         246.0  2019-05-30 20:16:21  \n",
       "2019-05-30 21:17:21        427.05         215.0  2019-05-30 21:17:21  \n",
       "2019-05-30 21:24:21        383.06         189.0  2019-05-30 21:24:21  \n",
       "2019-05-30 21:28:21       2549.79         351.0  2019-05-30 21:28:21  \n",
       "2019-05-30 21:33:21        978.91         239.0  2019-05-30 21:33:21  \n",
       "2019-05-30 21:43:21       1175.37         303.0  2019-05-30 21:43:21  \n",
       "2019-05-30 21:47:21        440.88         190.0  2019-05-30 21:47:21  \n",
       "2019-05-30 21:53:21       1511.17         352.0  2019-05-30 21:53:21  \n",
       "2019-05-30 22:17:21        826.90         234.0  2019-05-30 22:17:21  \n",
       "\n",
       "[746 rows x 7 columns]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['count']>20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x113874748>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a84208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#某一天的响应时间，平均响应时间\n",
    "df['2019-5-1']['res_time_avg'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1138853c8>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD7CAYAAACL+TRnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAFnNJREFUeJzt3X+MVeed3/H3FwaGX2sWk/XEjLvGEioai4asips0mjYzWFjFxc6urKqmdrOxpwZFNatNUidsp1baptNN7ErRKl47Jh0rqYsmae243ZjEPwJzV5pasQPdtUuYunFr3B2cJkugECaYH+bbP+aYMoQ7P+4w3Llz3i9pdM95zrn3fAddfTjznOc8JzITSdLsNqfeBUiSpp9hL0klYNhLUgkY9pJUAoa9JJWAYS9JJWDYS1IJGPaSVAKGvSSVQFO9C3jP+973vly5cmW9y5AuaXh4mMWLF9e7DOlX7Nu373Bm/sZ4+82YsF+5ciV79+6tdxnSJVUqFTo6OupdhvQrIuKtiexnN44klYBhL0klYNhLUgkY9pJUAoa9JJWAYS+Noa+vjzVr1nDzzTezZs0a+vr66l2SVJMZM/RSmmn6+vro7u6mt7eXd999l7lz59LV1QXA5s2b61ydNDme2UtV9PT00NvbS2dnJ01NTXR2dtLb20tPT0+9S5MmzbCXqhgcHKS9vX1UW3t7O4ODg3WqSKqdYS9V0dbWxsDAwKi2gYEB2tra6lSRVDvDXqqiu7ubrq4u+vv7OXv2LP39/XR1ddHd3V3v0qRJ8wKtVMV7F2G3bdvG4OAgbW1t9PT0eHFWDSkyc/ydIuYB387M2yKiA/hXxabrgX8GHACeAQ4W7V3AW8BTwF8BXgM+nmMcbN26delEaJqpnAhNM1VE7MvMdePtN243TkQsBPYBGwAys5KZ7ZnZzkiI/xmwDHjsvfbMfB24GxjKzLXF9g21/zqSpKkYN+wz82RmfgAYurA9IhYBqzLzNUbC/I6IeCUino6IANYDLxa77wE6L2/pkqSJmsoF2g3A7mL5DeDBzPwbwLXAR4HlwLFi+3Hg6ikcS5I0BVO5QHsb8O1i+SCw/4Lla4DDwNKibWmxPkpEbAG2ALS0tFCpVKZQjjR9Tpw44fdTDW1CF2gBIuKNzFxVLAfwY2BNZr4TET3A/wCeBP4cuBP4MPChzNwaEbuAL2fm96t9vhdoNZN5gVYz1WW7QFvFTcCBzHynWH8EuAd4GXgmMw8AO4HWiHgNOML/7/KRJF1hEw77987qi+VXMvP2C9Z/kpkdmXlTZn6+aDuVmZsy8wOZ+Q/HGnYpzVTOeqnZwpuqpCqc9VKzidMlSFU466VmE8NeqsJZLzWbGPZSFc56qdnEsJeqcNZLzSZeoJWqcNZLzSYTvqlqunlTlWYyb6rSTDXdN1VJkhqIYS9JJWDYS1IJGPaSVAKGvSSVgGEvSSVg2EtSCRj2klQChr0klYBhL0klYNhLUgkY9pJUAoa9JJWAYS9JJTChsI+IeRHxnWL5pogYioiB4md1RCyIiGcj4tWIeDJG/Erb9P4qkqRqxg37iFgI7AM2FE3LgMcys734eR24GxjKzLXF9g1V2iRJdTBu2Gfmycz8ADBUNC0D7oiIVyLi6eKMfT3wYrF9D9BZpU2SVAe1PJbwDeDBzNwVES8BHwWWA8eK7ceB1VXaRomILcAWgJaWFiqVSg3lSNPvxIkTfj/V0GoJ+4PA/guWrwEOA0uLtqXF+pJLtI2SmTuAHTDyWEIf+6aZyscSqtHVMhrn08CdETEHWMNI8O8Gbim2rwf6q7RJkuqglrB/BLgHeBl4JjMPADuB1oh4DTjCSNBfqk2SVAcT7sbJzFXF60+Ajou2nQI2XfSWS7VJkurAm6okqQQMe0kqAcNekkrAsJekEjDsJakEDHtJKgHDXpJKwLCXpBIw7CWpBAx7SSoBw16SSsCwl6QSMOwlqQQMe0kqAcNekkrAsJekEjDsJakEDHtJKgHDXpJKwLCXpBKYUNhHxLyI+M4F69+IiB9ExJ9ERFNE3BQRQxExUPysjogFEfFsRLwaEU9GREzfryFJGsu4YR8RC4F9wIZivR1oyswPA1cBtwDLgMcys734eR24GxjKzLXF9g3T9DtIksYxbthn5snM/AAwVDT9FPiji96/DLgjIl6JiKeLs/j1wIvF9j1A5+UrW7oy+vr6WLNmDTfffDNr1qyhr6+v3iVJNWma7Bsy88cAEfE7wDngBWAt8GBm7oqIl4CPAsuBY8XbjgOrL/6siNgCbAFoaWmhUqnU8CtI02P37t309vbywAMPcMMNN/Dmm2/ymc98hgMHDnDzzTfXuzxpUiYd9gARcTvwe8BtmXk2Ig4C+4vNB4FrgMPA0qJtabE+SmbuAHYArFu3Ljs6OmopR5oW999/Pzt37qSzs5NKpcKnPvUpPvjBD7Jt2za+8IUv1Ls8aVImPRonIt4PPABsysxfFM2fBu6MiDnAGkaCfzcj/fkw0qXTP/VypStncHCQ9vb2UW3t7e0MDg7WqSKpdrUMvfxd4Frg+WLkzb3AI8A9wMvAM5l5ANgJtEbEa8ARRsJfahhtbW0MDAyMahsYGKCtra1OFUm1m3A3TmauKl6/BHzpErt0XLT/KWDTVIqT6qm7u5uuri56e3t599136e/vp6uri56ennqXJk1aTX32Uhls3rwZgG3btjE4OEhbWxs9PT3n26VGEplZ7xqAkQu0e/furXcZ0iVVKhUcQKCZKCL2Zea68fZzugRpDI6z12xhN45URV9fH93d3ef77OfOnUtXVxeAXTlqOJ7ZS1X09PTQ29tLZ2cnTU1NdHZ20tvb6wVaNSTDXqrCcfaaTQx7qQrH2Ws2MeylKt4bZ9/f38/Zs2fPj7Pv7u6ud2nSpHmBVqrCcfaaTTyzl6QS8MxeqsKhl5pNPLOXqnDopWYTw16qYnBwkKGhoVF30A4NDTn0Ug3JbhypihUrVvC5z32OnTt3nu/Gueuuu1ixYkW9S5MmzTN7aQwXTxQ4UyYOlCbLM3upirfffpuvf/3ro4ZePvTQQ3ziE5+od2nSpHlmL1XR1tbGddddx/79+9m9ezf79+/nuuuu8w5aNSTDXqrCO2g1m9iNI1XhHbSaTXxSlTQBPqlKM9VlfVJVRMyLiO8Uywsi4tmIeDUinowRE2qb6i8lSarNuGEfEQuBfcCGouluYCgz1wLLivaJtkmS6mDcsM/Mk5n5AWCoaFoPvFgs7wE6J9EmSaqDWkbjLAeOFcvHgasn0SZJqoNaRuMcBpYWy0uL9SUTbBslIrYAWwBaWlqoVCo1lCNNvxMnTvj9VEOrJex3A7cATzPSVfNl4Dcn2DZKZu4AdsDIaBxHO2imcjSOGl0t3Tg7gdaIeA04wkj4T7RNklQHEz6zz8xVxespYNNFmyfaJkmqA6dLkKQSMOwlqQQMe0kqAcNekkrAsJekEjDspTH09fWNeuB4X19fvUuSauJ89lIVfX19dHd309vbe/6B411dXQDOaa+G45m9VEVPTw+9vb10dnbS1NREZ2cnvb299PT01Ls0adIMe6mKwcFB2tvbR7W1t7czODhYp4qk2hn2UhVtbW0MDAyMahsYGPCB42pIhr1UhQ8c12ziBVqpis2bN/PSSy+xceNGTp06RXNzM/fdd58XZ9WQDHupir6+Pnbt2sX3vve9UaNxPvKRjxj4ajh240hVOBpHs4lhL1XhaBzNJoa9VIWjcTSbGPZSFY7G0WziBVqpivcuwm7bto3BwUHa2tro6enx4qwaUmRmvWsARh44vnfv3nqXIV2SDxzXTBUR+zJz3Xj72Y0jSSVg2EtSCdQU9hHREREDxc9fRMTnI2LogrbVEbEgIp6NiFcj4smIiMtdvDTdnM9es0VNF2gzswK0A0TELuAo8Fhmnr/bJCL+ETCUmZsi4llgA/DClCuWrhDns9dsMqVunIhYBKwCfgrcERGvRMTTxVn8euDFYtc9QOeUKpWusJ6eHtauXcvGjRvZsGEDGzduZO3atd5Bq4Y01aGXG4DdwBvAg5m5KyJeAj4KLAeOFfsdB1Zf/OaI2AJsAWhpaaFSqUyxHOny+dGPfsTg4CBbt25l/fr17Nmzh8cff5xz5875XVXDmWrY3wZ8GzgI7C/aDgLXAIeBpUXb0mJ9lMzcAeyAkaGXDm3TTBIRbN26lUcffZRKpcKjjz4KwFe/+lWHYarh1NyNU3TVdDDSRfNp4M6ImAOsYST4dwO3FLuvB/qnVKl0hWUmTz31FDfccAPr16/nhhtu4KmnnmKm3JsiTcZU+uxvAg5k5jvAI8A9wMvAM5l5ANgJtEbEa8ARRsJfahhNTU0cP36cQ4cOkZkcOnSI48eP09TkjedqPDV/azPzFeD2YvknjJzlX7j9FLBpKsVJ9dTc3Mzw8DCf/OQnufXWW/nud7/LY489xuLFi+tdmjRp3lQlVTE8PMztt9/OE088wW233cYTTzzB7bffzvDwcL1LkybNsJfGcOONN7Jq1SrmzJnDqlWruPHGG+tdklQTOx+lKq6++moefvhhHnroIW688UYOHDjAZz/7Wa6++up6lyZNmmEvVbFo0SJOnjzJ9u3bOXPmDPPmzWP+/PksWrSo3qVJk2Y3jlTFoUOHWLJkCa2trUQEra2tLFmyhEOHDtW7NGnSDHupivnz57N9+3befPNN9uzZw5tvvsn27duZP39+vUuTJs2Hl0hVzJkzh+XLl7NkyRLeeustrr/+ek6cOMHPf/5zzp07V+/yJMCHl0hT1traypkzZ4CRqRMAzpw5Q2traz3LkmriBVppDIsWLeKJJ544P8XxXXfdVe+SpJoY9lIVb7/9Nlu3bmXjxo2cOnWK5uZm7r33Xh5//PF6lyZNmt04UhUrVqygr6+Pa6+9ljlz5nDttdfS19fHihUr6l2aNGme2UtV/PKXv+TYsWM0NzeTmZw8eZJjx44xZ47nSGo8fmulKo4cOcJVV13FwoULAVi4cCFXXXUVR44cqXNl0uQZ9tIYbr31VhYvXkxEsHjxYm699dZ6lyTVxG4caQzf+ta3ePjhh8/PjfPAAw/UuySpJoa9VEVTUxNz584dNTfOvHnzePfdd+tdmjRpduNIVZw9e5YzZ86wfPny83fTnjlzhrNnz9a7NGnSDHupiubmZjZv3szy5csBWL58OZs3b6a5ubnOlUmTZ9hLVZw+fZrnn3/+/JOphoeHef755zl9+nSdK5Mmzz57qYrW1lZ+9rOfcfjwYQAOHjzI/PnznRtHDammM/uIuCkihiJioPhZGxHPRsSrEfFkjFhwcdvlLl6aTkePHuX06dMsW7YMgGXLlnH69GmOHj1a58qkyau1G2cZ8FhmtmdmO3ATMJSZa4ttG4C7L9EmNYzh4WEi4ny4Hz16lIjwgeNqSLV24ywD7oiIjwF/AZwGniq27QE6geuBpy9qe6H2UqUrLzOJiFGvUiOqNezfAB7MzF0R8RLw14HeYttxYDWwHDh2UdsoEbEF2ALQ0tJCpVKpsRxp+rwX8BcGvd9VNZpaw/4gsP+C5d8ClhbrS4HDwJJLtI2SmTuAHTDypKqOjo4ay5Gmz4IFC3jnnXfOvwL4XVWjqbXP/tPAnRExB1gDfAa4pdi2HugHdl+iTWo47wX8e69SI6o17B8B7gFeBp5hpAunNSJeA44wEvQ7L9EmSaqDmrpxMvMnQMdFzZsuWj91iTZJUh14B60klYBhL0klYNhLUgkY9pJUAoa9JJWAYS9JJWDYS+OYM2fOqFepETmfvUpnsrNtnzt3btTrRD/DSdM0kxj2Kp2JhvBYgW6Qq9H4d6lUxf333z+pdmkm88xequIrX/kKAF/72tc4deoUzc3N3HfffefbpUYSM+XP0XXr1uXevXvrXYZ0SSu37+LgF/9uvcuQfkVE7MvMdePtZzeOJJWAYS9JJWDYS1IJGPaSVAKGvSSVgGEvSSVg2EtSCRj2klQCNYd9RHwjIn4QEX8SETdFxFBEDBQ/qyNiQUQ8GxGvRsSTMdnZpyRJl01NYR8R7UBTZn4YuAq4FngsM9uLn9eBu4GhzFwLLAM2XK6iJUmTU+uZ/U+BP7rgM5YBd0TEKxHxdHEWvx54sdhnD9A5pUolSTWraSK0zPwxQET8DnAO+O/Ag5m5KyJeAj4KLAeOFW85Dqy++HMiYguwBaClpYVKpVJLOSqxf7x7mOEzV+ZYK7fvmtbPXzwP/vjmxdN6DJVXzbNeRsTtwO8BtwHzgT8vNh0ErgEOA0uLtqXF+iiZuQPYASMToXV0dNRajkpq+LkrM0FZpVJhur+fK7fvmvZjqLxq7bN/P/AAsCkzfwF8GrgzIuYAa4D9wG7gluIt64H+qZcrSapFrX32v8vIRdnnI2IA+CVwD/Ay8ExmHgB2Aq0R8RpwhJHwlyTVQa199l8CvnRRc89F+5wCNtVYlyTpMvKmKkkqAcNekkrAZ9Cqof1a23b+2je2X5mDfWN6P/7X2gB89KGmh2GvhvaLwS/OqqGX0nSxG0eSSsCwl6QSsBtHDe+KdX88N73HWbpw3rR+vsrNsFdDuxL99TDyH8qVOpY0HezGkaQSMOwlqQQMe0kqAcNekkrAsJekEjDsJakEDHtJKgHDXpJKwJuqVDoRUdv7Ln5czzgys6bjSNPBM3uVTmZO+qe/v3/S75FmEsNekkrAsJekEpi2sI+IBRHxbES8GhFPRq0dpZKkKZvOM/u7gaHMXAssAzZM47EkSWOYzrBfD7xYLO8BOqfxWJKkMUxn2C8HjhXLx4Grp/FYkqQxTOc4+8PA0mJ5abE+SkRsAbYAtLS0UKlUprEcqXYnTpzw+6mGFtM1Hjgi7gU+lJlbI2IX8OXM/H61/detW5d79+6dllqkqapUKnR0dNS7DOlXRMS+zFw37n7TGPbNwNPAbwKvAh/PMQ4WEX8JvDUtxUhT9z4u8depNANcn5m/Md5O0xb20mwSEXsncvYkzVTeVCVJJWDYS1IJGPbSxOyodwHSVNhnL0kl4Jm9JJWAYS9JJWDYq/Qi4rcj4tcvant/RPzTetUkXW6GvQS/DYwK+8z8P5n5r+tUj3TZGfZqOBFRiYg/jIjnivWWiHguIl6OiD8o2lZHxH+JiB9GRPcYn/UCsBH4jxHx5QvaV0bE1y9Y/58R8VJEfDMi/ltE3BoRf7WoZW9EfHyMY3RExJ9FxCvFXxFNEfFysW1ORPygWP77EfFfI+L7EfEfImLllP6hpAsY9mpEHwJ+mJl/p1j/A+Cbmfkh4GMRsRzYBHw7M28C/ne1D8rMW4DvAX8vMz81xjHnAh8H3g/8PnAT8BDwz4GPAJ8b4wE91wAfAz4BbM3Ms8CBiFhVfM6fFvv9A+A2oB/4VmYeHKMeaVKmc9ZLabr8KDO/fcH6auBvRsQngCXACuBJ4IsR8Syw6zIc8yBwtnh9F4jiuP8CSEb+M/h14Ogl3jsXeBQ4BCws2p5i5C+K9xXLAK8B3wR+DjxyGWqWzjPs1YhOXLT+OvCfM7O/CPyjjDw854vAG8D/ioh/m5lnqnzeSWBxDXW8DnwqM9+MiN8HTlfZ718CbYz85/DHRduLwNeBeZn5+aJtTWb+rRrqkMZl2Gs2+CLwRET8ISPh/u+L1ycZ+Y4/N0bQA/w7oDci5gJ/OzNPTvC424v3XQX8aWYOV9nvO8APgUFGHtFJZp6OiGHg/16w39mI+GHRVsnMngnWIY3LO2ilGSAiFgAvAOeAXwB/mZn31rcqzSaGvUohIn4L+MpFzT/IzH9yGY+xEbh45M9/ysx/c7mOIdXKsJekEnDopSSVgGEvSSVg2EtSCRj2klQChr0klcD/A1Q4tWq8t4cCAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113821588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 判断是否有异常值\n",
    "df['2019-5-1'][['res_time_avg']].boxplot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/xinyi.zhang/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>11408773</td>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>11431010</td>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>11451787</td>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>11454117</td>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>11454151</td>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>11460717</td>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:34:48  11408773      1       1694.47       1694.47   \n",
       "2019-05-01 14:00:49  11431010     17      19770.18        207.54   \n",
       "2019-05-01 18:36:49  11451787      8       8799.92         96.59   \n",
       "2019-05-01 19:09:49  11454117      6       7399.94        307.39   \n",
       "2019-05-01 19:10:49  11454151     13      23595.60        206.20   \n",
       "2019-05-01 20:38:49  11460717     15      16169.25        142.47   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2019-05-01 00:34:48       1694.47        1694.0  2019-05-01 00:34:48  \n",
       "2019-05-01 14:00:49       2974.52        1162.0  2019-05-01 14:00:49  \n",
       "2019-05-01 18:36:49       3233.26        1099.0  2019-05-01 18:36:49  \n",
       "2019-05-01 19:09:49       3153.02        1233.0  2019-05-01 19:09:49  \n",
       "2019-05-01 19:10:49       4664.84        1815.0  2019-05-01 19:10:49  \n",
       "2019-05-01 20:38:49       3624.26        1077.0  2019-05-01 20:38:49  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查询异常值\n",
    "df2 = df['2019-5-1'] \n",
    "df2[df['res_time_avg']>1000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "#  定义为异常值 2019-05-01 00:34:48\t1\t1694.47\t1694.47\t1694.47\t1694.0\t2019-05-01 00:34:4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 7. 分析一天中api响应时间，如下图所示，可以看到在业务高峰时间段，最大响应时间和平均 响应时间都有所上升"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113838f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 打印这一天的全部数据\n",
    "df['2019-5-1'][['res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1140e5fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 根据20T间隔重新取值\n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 业务高峰时段，下午2-3点，晚上7-8点，响应时间都是上升的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 8. 分析连续的几天数据，可以发现，每天的业务高峰时段都比较相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1166705f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-5-1':'2019-5-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "#每天的情况都差不多"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 9. 分析周末访问量是否有增加。如下图，可以发现，周末的下午和晚上，比非周末访问量多 一些"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='created_at', length=865)"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2019-5-2'].index.weekday # 添加weekend数据 0代表星期一，1代表星期二， 5 6分别代表周六周日"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['weekday'] = df.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  weekday  \n",
       "created_at                                                                     \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07        3  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07        3  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  weekday  \\\n",
       "created_at                                                                      \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07        3   \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07        3   \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07        3   \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07        3   \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07        3   \n",
       "\n",
       "                     weekend  \n",
       "created_at                    \n",
       "2018-11-01 00:00:07    False  \n",
       "2018-11-01 00:01:07    False  \n",
       "2018-11-01 00:02:07    False  \n",
       "2018-11-01 00:03:07    False  \n",
       "2018-11-01 00:04:07    False  "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断是否是周末，是不是5 6\n",
    "df['weekend'] = df['weekday'].isin({5,6})\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对weekend进行分组,对count列 求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  created_at\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#周末调用平均次数多，7.57\n",
    "#周末哪个时段调用次数比较高\n",
    "\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116670ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#周末和非周末，具体时间对比，绘制成图形\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend         False      True \n",
       "created_at                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末和非周末数据叠加\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a059b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level=0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
